1. Field of Invention
Embodiments of the present invention relate generally to microprocessors and in particular to interrupt handling.
2. Related Art
Within a computer processing environment, an interrupt is an event that interrupts normal program execution. Programs typically execute on a microprocessor in an ordered fashion. Typical execution is altered by instructions that expressly cause program flow to deviate, e.g., a jump instruction and a branch instruction. Interrupts disrupt normal execution of instructions. Typically upon detection of an interrupt, a special program known as an interrupt handler, or interrupt service routine, is executed that context switches the system. Context switching includes storing the state (e.g., context) of the processor, servicing the interrupt, and restoring the context of the process such that execution of instructions can be resumed from the point prior to the interrupt.
The process of context switching requires a large number of processor cycles during which the processor executes the interrupt service routine. This interrupt service routine typically flushes the processor's pipeline and saves numerous state registers in memory. As programs increase in complexity the time consumed performing interrupt service routines decreases availability of processor resources available for other program functions.